perm filename CS204.MF[MF,DEK] blob sn#543106 filedate 1980-11-03 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00008 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	"Computer Modern Roman 10 point"
C00004 00003	"The letter C"
C00006 00004	"The letter S"
C00009 00005	"The numeral 2"
C00011 00006	"The numeral 0"
C00012 00007	"The numeral 4"
C00013 00008	end
C00014 ENDMK
C⊗;
"Computer Modern Roman 10 point";
ph=250/36; px=165/36; pe=90/36; pd=70/36;
pb=20/36; po=8/36; ps=20/36; pas=70/36; pa=.5(ph-pd);
pw=12/36; pwi=27/36; pwii=32/36; pwiii=38/36;
pwiv=32/36; pwv=38/36; aspect=1.0; pdel=0; fudge=1.0;
pu=20/36; lcs=1.4; ucs=1.85; sc=0; ls=0;
slant=0; sqrttwo=sqrt 2; fixwidth=0; crisp=1;
phh=ph-pssd; phhh=ph-18/36; pssd=.5po; pdd=pd; varg=0; lowast=0; ligs=1.
input cmbase; call fontbegin;
danger=mi=0;
new mc,lbowl,rbowl,rstem,rv,hic;	% quantities used to compute spacing
mc=mi/pu;	% converts to relative units when $\\{mi}=1$
lbowl=.3phh.slant+.5pu;	% used at left of upper-case bowl
rbowl=.7phh.slant-.5pu;	% used at right of upper-case bowl
rstem=phh.slant+(ucs+2sc-1.5)pu;	% used at right of tall stem
rv=phh.slant+(ucs+2sc-1)pu;	% used at right of tall diagonal
hic=1-.5mi;	% used when half the italic correction goes into \\{rtcorr}
"The letter C";
if ucs≠0: call charbegin(`C,13,mc.lbowl,-.5mc(phh.slant-.5pu),
					phh,0,hic(phh.slant-.5pu));
else: call charbegin(`C,11,mc.lbowl,-.5mc(phh.slant-.5pu),
					phh,0,hic(phh.slant-.5pu));
fi;
hpen;
rt0x1=round(r-u); x5=x1; lft5x3=round u; x2=x4=.5r+u;
top0y2=hh+o; bot0y3=-o; y3=y4; y6=.5[y2,y4];
if ucs=0: x6=r+2u; new aa; x1=aa[x2,x6];
	y1=(sqrt(1-aa.aa))[y6,y2];
else:	if m<.6hh: y1=good6 2/3hh; else: y1=good6 m;
	fi;
	x6=x1; x7=x1; top0y7=hh; lft0x8=lft5x1; y8=y1;
	w0 ddraw 1..7,8..7;	% upper serif
	lpen#; w5 draw (6..)1..2{-1,0};	% erase spurious part
fi;
hpen; y5=hh-y1;
w0 draw (6..)1..2{-1,0};	% upper right stroke
call `a darc(2,3,w5);		% main stroke
w0 draw 4{1,0}..5(..6).		% lower right stroke
"The letter S";
call charbegin(`S,10,0,-.5mc(phh.slant-1.5pu),phh,0,hic(phh.slant-.5pu)+.5mi.pu);
new w99; w99=round .3[w0,w4];
hpen; top0y1=hh+o; bot0y5=-o;
x3=.5r; y3=.52hh; lft99x2=round u; rt99x4=round(r-u);
if ucs=0: x1=x5=x3; x6=x2; x7=x4;
	y6=1/3[top0 0,y3]; y7=1/4[bot0 hh,y3];
	w0 draw 6{x5-x6,3(y5-y6)}..5{1,0};	% lower left stroke
	draw 7{x1-x7,2(y1-y7)}..1{-1,0};	% upper right stroke
else: if w0=w4: x1=x5=x3; x6=x2; x7=x4;
		y6=1/3[top0 0,y3]; y7=1/4[bot0 hh,y3];
		w0 draw 6{x5-x6,3(y5-y6)}..5{1,0};	% lower left stroke
		draw 7{x1-x7,2(y1-y7)}..1{-1,0};	% upper right stroke
		x8=x9=x6; y9=y6+ucs.aspect.u+eps; bot0y8=0;
		x10=x11=x7; y11=y7-ucs.aspect.u-eps; top0y10=hh;
		w0 draw 8..9;	% lower serif
		draw 10..11;	% upper serif
	else: x1=x3-.5u; x5=x3+.5u; lft0x6=round u; rt0x7=round(r-1.5u);
		y6=good6 1/3hh-1; y7=good6 2/3hh+1;
		bot0y8=0; y9=y6; x8=x6; rt4x6=rt0x9;
		top0y10=hh; y11=y7; x10=x7; lft4x7=lft0x11;
		w0 ddraw 6..8,9..8;	% lower serif
		ddraw 7..10,11..10;	% upper serif
		rpen#; w4 draw 6{0,-1}..5{1,0};	% erase excess
		lpen#; w4 draw 7{0,1}..1{-1,0};	% ditto
		hpen; w0 draw 6{0,-1}..5{1,0};	% lower left stroke
		draw 7{0,1}..1{-1,0};	% upper right stroke
	fi;
fi;
call `a sdraw(1,2,3,4,5,w99,round(pixels.pwv.aspect+blacker),
				-hh/(50u)).	% middle stroke
"The numeral 2";
call charbegin(`2,9,0,0,phhh,0,phhh.slant-.5pu);
vpen; rt8x1=round(r-u); lft8x2=round u; bot8y1=0; y1=y2;
w8 draw 1..2;	% bar
if ucs≠0: x4=x1; top6y4=top8y1+ucs.u+eps; bot6y3=0;
	if w7=w8: x3=x4;
	else: x3+.5u=x4; rpen#; w0+.5u draw 3..4;	% erase excess
	fi;
	hpen; w0 draw 3..4;	% serif
fi;
cpen; bot3y5=2/3hhh; lft3x5=round u;
w3 draw 5;	% bulb
hpen; lft3x5=lft0x6; y5=y6;
rt2x20=rt0x9=round(r-u); lft2x20=lft0x8; x7=.5[x6,x9]-.25u; x11=x2;
x10=x7-.5u; top0y7=hhh+o; y8=y9=.7hhh; bot0y11=0; y10=.4[y11,y9];
lft11x12=lft0x10; y12=y10;
w0 draw 6{0,1}..7{1,0};	% shoulder
lpen#; 2u draw 9{0,-1}..12{2(x10-x9),y10-y9}
	..11{x11-x10,4(y11-y10)};	% erase excess
hpen; w0 ddraw 7{1,0}..8{0,-1}..10{2(x10-x9),y10-y9}..11{x11-x10,4(y11-y10)},
	7{1,0}..9{0,-1}..12{2(x10-x9),y10-y9}..11{x11-x10,4(y11-y10)}.	% stroke
"The numeral 0";
call charbegin(`0,9,0,0,phhh,0,phhh.slant-.5pu);
if fixwidth=0: new save; save=sqrttwo; new sqrttwo;
	sqrttwo=sqrt(1.23114413save);	% the constant is $2↑{3/10}$
fi;
hpen;
if w2>1.5u: lft2x2=round .75u;
else: x2=good2 1.5u;
fi;
x1=r-x1;	% axis of left-right symmetry
x3=r-x2; top0y1=hhh+o; bot0y2=-o; y3=y2;
call `a darc(1,2,w2); call `b darc(1,3,w2);	% bowl
if fixwidth=0: new sqrttwo; sqrttwo=save;
fi.
"The numeral 4";
call charbegin(`4,9,0,0,phhh,0,phhh.slant-.5pu);
hpen; x1=x2;
if lcs≠0: if w2>1.5u: rt1x1=round(r-2.25u);
	else: x1=good1 6u;
	fi;
else: x1=good1 6u;
fi;
top1y1=hhh+o+oo; bot1y2=0;
rt1x1=rt0x3+del; y1=y3; y4=y5=good6 5/6 e; lft0x4=round .5u;
w1 draw 1..2; w0 draw 3..1;	% stem
lpen#; w1 draw 3..4;	% erase excess at upper left
hpen; w0 draw 3..4;	% diagonal
if lcs≠0: rt0x5=rt1x2+1.75u+eps;
	call `a serif(2,1,1,-1.75);
	call `b serif(2,1,1,1.75);	% serif
else: rt0x5=round(r-.75u);
fi;
w0 draw 4..5.	% bar
end